<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<title>Scheda informativa</title>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link type="text/css" rel="stylesheet" href="css/modulo.css" ></link>

<?php
	header('Content-type: text/html; charset=utf-8');
	include_once 'modulo.php';
	include_once 'taglib.php';
	include_once 'captcha.php';
	
	if (!isset($_SESSION)) {
	  session_start();
	}
	
	if(isset($_SESSION['modulo'])){
		$modulo = $_SESSION['modulo'];
	}else{
		$modulo= new modulo();
	}
	
	$urlxml = "./resources/config.xml";
	$config= new SimpleXmlElement($urlxml,1,true);
	
	$host = $config->database->host;
	$dbname = $config->database->name;
	$user = $config->database->user;
	$pass = $config->database->password;
	
	$factory = new ComboTableFactory($host,$dbname,$user,$pass);
	
	$cpu = $factory->comboTable("tabella","chiave","valore","tipo='cpu'");
	$os = $factory->comboTable("tabella","chiave","valore","tipo='os'");
	$ram_tot = $factory->comboTable("tabella","chiave","valore","tipo='ram' and valore>='3 GB' "); 
	$ram_free = $factory->comboTable("tabella","chiave","valore","tipo='ram'");
	$raid = $factory->comboTable("tabella","chiave","valore","tipo='raid' order by peso");
	$hd = $factory->comboTable("tabella","chiave","valore","tipo='hd' order by peso");
	$marca = $factory->comboTable("tabella","chiave","valore","tipo='server'");
	$dbrms = $factory->comboTable("tabella","chiave","valore","tipo='db'");
	$dbrms_inst = $factory->comboTable("tabella","chiave","valore","tipo='dbi'");
	$banda = $factory->comboTable("tabella","chiave","valore","tipo='banda'");
	$virtual = $factory->comboTable("tabella","chiave","valore","tipo='virtual'");
	
	$scoring = $factory->comboTable("tabella","chiave","peso","");
	
	$sezioni = $factory->parameterTable("tabella","chiave","valore","peso","tipo='SEZIONE'");
	$coefficienti = $factory->parameterTable("tabella","chiave","valore","peso","tipo='COEFFICIENTE'");
	$campi = $factory->parameterTable("tabella","chiave","valore","peso","tipo='CAMPO'");
	
	$factory->close();

?>
<script type="text/javascript" src="js/jquery.min.js" ></script>
<script language="javascript" type="text/javascript">

// DEBUG MODE 

DEBUG_MODE = true;

if (!DEBUG_MODE) {
    console = console || {};
    console.log = function(){};
}

$(function() {

	var valutazioneFunz = function( event ){
		//console.log("->valutazioneFunz");
		$.ajax({ url: './valutazione.php',
		    data: $("#moduloForm").serialize(),
		    type: 'post',
		    success: function(output) {	    
				//alert(output);
				var totali = $.parseJSON(output);
				//alert(totali);
				var ok = true;
				var punteggio=0;
				for(var i in totali){
					console.log("ok :"+ok);
					console.log("sez :"+i);
					console.log("tot :"+totali[i]);
					var tot_parz= parseInt(totali[i]);
					if(ok && !(typeof sezioni[i]==="undefined") ){
						var soglia = parseInt(sezioni[i][1]);
						console.log("soglia :"+soglia);	
						console.log("tot_parz :"+tot_parz);						
						if(tot_parz<soglia){
							ok = false;
						}else{
							ok = true;
						}
						console.log("sezioni ok :"+ok);
					}
					punteggio+=tot_parz;
				}
			    //var punteggio=parseInt(output);
			    console.log("punteggio:"+punteggio);
			    console.log("ok:"+ok);
		    	$("#punteggio").val(punteggio);
				if(ok==false){
					$("#semaforo").attr("src","images/ko.png");
					$("#valutazione").val("Negativa");
				}else{
					$("#semaforo").attr("src","images/ok.png");
					$("#valutazione").val("Positiva");
				};
		
			}
		});
	};
	
	$( "#moduloForm select" ).change(valutazioneFunz);
	$( "#moduloForm :checkbox" ).click(valutazioneFunz);
	$( "#appserver_cpu").trigger('change');
});

var sezioni_orig=eval(<?php echo json_encode($sezioni,TRUE); ?>);
var sezioni=eval(<?php echo json_encode($sezioni,TRUE); ?>);
var coefficienti=eval(<?php echo json_encode($coefficienti,TRUE); ?>);
var campi=eval(<?php echo json_encode($campi,TRUE); ?>);

var scoring=eval(<?php echo json_encode($scoring,TRUE); ?>);

var errori = <?php echo count($modulo->getErrors()) ?>;
//console.log("errori:"+errori);

function checkForm(){
	if( confirm("Procedere all'invio della Scheda Informativa?")) {
		$("#azione").val("insert");
		document.forms["modulo"].submit();
	}
}

function clearForm(){
	if( confirm("Pulire i dati della Scheda Informativa?")) {
		$("#azione").val("clear");
		document.forms["modulo"].submit();
	}
}

function checkErrors(){
	if(errori>0)
		document.getElementById("errori").style.display="block";
	else
		document.getElementById("errori").style.display="none";
}

function dbServer(){
	var $checked = $("#dbserver_appserver").is(":checked");
	if($checked){
		$('.dbServer * > option:selected').removeAttr("selected");
		$('.dbServer * > select').change();
		$(".dbServer").hide(500);
		$('.dbServer * > input').attr("disabled",true);
		$('.dbServer * > select').attr("disabled",true);
		// TAPULLO azzera soglia sezione 2 
		console.log(sezioni["sezione_2"][1]);
		sezioni["sezione_2"][1]=0;
		console.log(sezioni["sezione_2"][1]);
	}else{
		$(".dbServer").show(500);
		$('.dbServer * > input').attr("disabled",false);
		$('.dbServer * > select').attr("disabled",false);
		// TAPULLO ripristina soglia sezione 2 
		console.log(sezioni["sezione_2"][1]);
		sezioni["sezione_2"][1]=sezioni_orig["sezione_2"][1];
		console.log(sezioni["sezione_2"][1]);
	}
	updateValutazione('totale','0');
}

function dbPresente(){
	var $checked = $("#dbserver_presente").is(":checked");
	if($checked){
		$("#db_inst").hide(500);
		$('#db_inst * > input').attr("disabled",true);
		$('#db_inst * > select').attr("disabled",true);
		$("#db_pre").show(500);
		$('#db_pre * > input').attr("disabled",false);
		$('#db_pre * > select').attr("disabled",false);
	}else{
		$("#db_pre").hide(500);
		$('#db_pre * > input').attr("disabled",true);
		$('#db_pre * > select').attr("disabled",true);
		$("#db_inst").show(500);
		$('#db_inst * > input').attr("disabled",false);
		$('#db_inst * > select').attr("disabled",false);
	}
	updateValutazione('totale','0');
}

function virtual(){
	var $checked = $("#appserver_virtual").is(":checked");
	if($checked){
		$(".appVirtual").show();
		$('.appVirtual * > input').attr("disabled",false);
		$('.appVirtual * > select').attr("disabled",false);
	}else{
		$(".appVirtual").hide();
		$('.appVirtual * > input').attr("disabled",true);
		$('.appVirtual * > select').attr("disabled",true);
	}
	$checked = $("#dbserver_virtual").is(":checked");
	if($checked){
		$(".dbVirtual").show();
		$('.dbVirtual * > input').attr("disabled",false);
		$('.dbVirtual * > select').attr("disabled",false);
	}else{
		$(".dbVirtual").hide();
		$('.dbVirtual * > input').attr("disabled",true);
		$('.dbVirtual * > select').attr("disabled",true);
	}
	updateValutazione('totale','0');
}

//var valutazione={};

function sediRemote(){
	var checked = $("#sedi_remote").is(":checked");
	if(!checked){
		$(".sediRemote").hide();
	}else{
		$(".sediRemote").show(500);
	}
	/*
	// object altrimenti JSON.stringify non funge
	s = $("#score").val();
	valutazione = JSON.parse(s);
	updateValutazione('totale','0');
	*/
}

function updateValutazione(name,value){
	//NOP 
	var nop="";
}
/*
function updateValutazione(name,value){

	var score = scoring[value];
	if(!isNaN(score)){
		valutazione[name]=parseInt(score);
	}
	var json_score = JSON.stringify(valutazione);
	
	//valutazione[name]=parseInt(scoring[value]);
	// aggiorna totale
	var totale=0;
	var totali= {};
	for (var sez in sezioni) {
		totali[sez]=0;
	}
	totali["sezione_0"]=0;
	console.log("PRE:"+JSON.stringify(totali));
	for (var e in valutazione) {
		if(typeof campi[e]!=="undefined"){
			//console.log("sezione:"+campi[e][0]);
			//console.log("campo :"+e+" "+valutazione[e]);
			totali[campi[e][0]]+=parseInt(valutazione[e]);
		}else{
			totali["sezione_0"]+=parseInt(valutazione[e]);
		}	
		//totale+=valutazione[e];
	}
	for (var c in coefficienti) {
		var checked = $("#"+c).is(":checked");
		console.log("COEF "+c+":"+checked);
		console.log("PRE tot:"+coefficienti[c][0]+" "+totali[coefficienti[c][0]]);
		if(checked){
			totali[coefficienti[c][0]]*=parseFloat(coefficienti[c][1]);	
			console.log("POST tot:"+coefficienti[c][0]+" "+totali[coefficienti[c][0]]);
		}
	}
	console.log("POST:"+JSON.stringify(totali));
	console.log("POST:"+JSON.stringify(coefficienti));
	
	var result = false;
	for(var i in totali){	
		console.log("sez "+i);
		console.log("tot :"+totali[i]);
		var tot_parz= totali[i];
		if(!typeof sezioni[i]==="undefined"){
			console.log("soglia "+i+":"+sezioni[i][1]);	
			var soglia = sezioni[i][1];
			if(tot_parz>0 && tot_parz<soglia){
				result = false;
			}else{
				result = true;
			}
		}
		totale+=tot_parz;
	}
	console.log(JSON.stringify(valutazione));
	$("#punteggio").val(totale);
	$("#score").val(json_score);
	console.log("RESULT:"+result);
	if(!result){
		$("#semaforo").attr("src","images/ko.png");
	}else{
		$("#semaforo").attr("src","images/ok.png");
	};
	//alert($("#punteggio").val());
	//alert($("#score").val());
}
*/
</script>

</head>
<body onLoad="checkErrors();dbServer();sediRemote();dbPresente();virtual();">
<?php include_once 'header.php';?>
<div  id="errori" class="error" style="display:none;">
	<h1 style="text-align: center;"> Errore di compilazione</h1>
	<img src='images/error48.png' align="middle"  />
	<?php 
		/*
		print("<!--");
		var_dump($modulo->getErrors());
  		print("-->");
  		*/
  	?>
	<p>Per inoltrare la scheda correggere gli errori indicati e ripetere l'invio</p>
</div>
<div id="modulo" class="modulo">
<form id="moduloForm" name="modulo"  action="controller.php" method="post">

<fieldset>
<legend>Scheda informativa per Installazione Sicr@web</legend>
<div id="sez0">
<?php 
	$modulo->data=date("d/m/Y");
?>
<input type="hidden" id="data" name="data" value="<?php echo $modulo->data?>"></input>
<input type="hidden" id="azione" name="azione" value="valutazione"></input>
<table>
	<tr><td ><?php new TagInput($modulo,'cliente','width:250px')?></td></tr>
	<tr><td style='width:300px'><?php new TagInput($modulo,'data','width:80px',true)?></td></tr>
	<tr><td><?php new TagInput($modulo,'riferimento','width:250px')?></td></tr>
	<tr><td><?php new TagInput($modulo,'riferimento_email','width:250px')?></td></tr>
</table>
</div>
&nbsp;
<hr/>
<h1>1. Application Server</h1>
<div id="sez1">
<table>
	<tr><td><?php new TagCheckbox($modulo,'appserver_virtual','',false,'virtual()')?> (*) I dati inseriti verranno considerati come limite massimo allocabile per il software</td></tr>
	<tr class="appVirtual"><td><?php new TagCombo($modulo,$virtual,'appserver_virtual_type',false,'updateValutazione(this.name,this.value)')?></td></tr>
	<tr><td><?php new TagCombo($modulo,$cpu,'appserver_cpu',false,'updateValutazione(this.name,this.value)')?><?php new TagInput($modulo,'appserver_n_cpu','width:40px')?></td></tr>
	<tr><td><?php new TagCombo($modulo,$os,'appserver_os',false,'updateValutazione(this.name,this.value)')?><?php new TagCheckbox($modulo,'appserver_64_bit')?></td></tr>
	<tr><td><?php new TagCombo($modulo,$ram_free,'appserver_ram_free',false,'updateValutazione(this.name,this.value)')?></td></tr>
	<tr><td><?php new TagCombo($modulo,$raid,'appserver_raid',false,'updateValutazione(this.name,this.value)')?><?php new TagCombo($modulo,$hd,'appserver_hd',false,'updateValutazione(this.name,this.value)')?></td></tr>
	<tr><td><?php new TagInput($modulo,'appserver_gb_inst','width:80px')?></td></tr>
	<tr><td><?php new TagCheckbox($modulo,'appserver_cluster')?></td></tr>
	<tr><td><?php new TagCombo($modulo,$marca,'appserver_marca',false,'updateValutazione(this.name,this.value)')?></td></tr>
	<tr><td><?php new TagInput($modulo,'appserver_modello','width:250px')?></td></tr>	
	<tr><td></td></tr>
	<tr><td>Elenco eventuali applicazioni già presenti</td><td></td></tr>
	<tr><td>1. <?php new TagInput($modulo,'appserver_app1','width:400px')?></td></tr>
	<tr><td>2. <?php new TagInput($modulo,'appserver_app2','width:400px')?></td></tr>
	<tr><td>3. <?php new TagInput($modulo,'appserver_app3','width:400px')?></td></tr>
	<tr><td>4. <?php new TagInput($modulo,'appserver_app4','width:400px')?></td></tr>
	<tr><td>5. <?php new TagInput($modulo,'appserver_app5','width:400px')?></td></tr>
</table>
</div>
&nbsp;
<hr/>
<h1>2. Database Server</h1>
<div id="sez2">
<table>
	<tr><td><?php new TagCheckbox($modulo,'dbserver_appserver','',false,'dbServer()')?></td><td></td></tr>
	<tr><td><?php new TagCheckbox($modulo,'dbserver_presente','',false,'dbPresente()')?></td><td></td></tr>
	<tr class="dbServer"><td><?php new TagCheckbox($modulo,'dbserver_virtual','',false,'virtual()')?> (*) I dati inseriti verranno considerati come limite massimo allocabile per il software</td></tr>
	<tr class="dbVirtual dbServer"><td><?php new TagCombo($modulo,$virtual,'dbserver_virtual_type',false,'updateValutazione(this.name,this.value)')?></td></tr>
	<tr class="dbServer"><td><?php new TagCombo($modulo,$cpu,'dbserver_cpu',false,'updateValutazione(this.name,this.value)')?><?php new TagInput($modulo,'dbserver_n_cpu','width:40px')?></td></tr>
	<tr class="dbServer"><td><?php new TagCombo($modulo,$os,'dbserver_os',false,'updateValutazione(this.name,this.value)')?><?php new TagCheckbox($modulo,'dbserver_64_bit')?></td></tr>
	<tr class="dbServer"><td><?php new TagCombo($modulo,$ram_free,'dbserver_ram_free',true,'updateValutazione(this.name,this.value)')?></td></tr>
	<tr class="dbServer"><td><?php new TagCombo($modulo,$raid,'dbserver_raid',false,'updateValutazione(this.name,this.value)')?><?php new TagCombo($modulo,$hd,'dbserver_hd',false,'updateValutazione(this.name,this.value)')?></td></tr>
	<tr class="dbServer"><td><?php new TagInput($modulo,'dbserver_gb_inst','width:80px')?></td></tr>
	<tr class="dbServer"><td><?php new TagCheckbox($modulo,'dbserver_cluster')?></td></tr>
	<tr class="dbServer"><td><?php new TagCombo($modulo,$marca,'dbserver_marca',false,'updateValutazione(this.name,this.value)')?></td></tr>
	<tr class="dbServer"><td><?php new TagInput($modulo,'dbserver_modello','width:250px')?></td></tr>	
	<tr id="db_pre"><td><?php new TagCombo($modulo,$dbrms,'dbserver_dbrms',false,'updateValutazione(this.name,this.value)')?></td></tr>	
	<tr id="db_inst"><td><?php new TagCombo($modulo,$dbrms_inst,'dbserver_dbrms',false,'updateValutazione(this.name,this.value)')?></td></tr>	
	<tr><td></td></tr>	
	<tr><td>Elenco eventuali applicazioni già presenti</td><td></td></tr>
	<tr><td>1. <?php new TagInput($modulo,'dbserver_app1','width:400px')?></td><td></td></tr>
	<tr><td>2. <?php new TagInput($modulo,'dbserver_app2','width:400px')?></td><td></td></tr>
	<tr><td>3. <?php new TagInput($modulo,'dbserver_app3','width:400px')?></td><td></td></tr>
	<tr><td>4. <?php new TagInput($modulo,'dbserver_app4','width:400px')?></td><td></td></tr>
	<tr><td>5. <?php new TagInput($modulo,'dbserver_app5','width:400px')?></td><td></td></tr>
</table>
</div>
&nbsp;
<hr/>
<h1>3. Sedi</h1>
<div id="sez3">
<table>
	<tr><td ><?php new TagInput($modulo,'sedi_n_post_principale','width:40px')?></td><td></td></tr>
	<tr><td><?php new TagCheckbox($modulo,'sedi_remote','',false,'sediRemote()')?></td><td></td></tr>	
	<tr class="sediRemote"><td ><?php new TagInput($modulo,'sedi_n_sedi','width:40px')?></td><td></td></tr>
	<tr class="sediRemote"><td><?php new TagCombo($modulo,$banda,'sedi_connettivita',false,'updateValutazione(this.name,this.value)')?></td></tr>
	<tr class="sediRemote"><td ><?php new TagInput($modulo,'sedi_n_post_remote','width:40px')?></td><td></td></tr>
	<tr ><td ><?php new TagInput($modulo,'sedi_n_abitanti','width:80px')?></td><td></td></tr>
</table>
</div>
&nbsp;
<hr/>
<h1>4. Backup</h1>
<div id="sez4">
<table>
	<tr><td><?php new TagCheckbox($modulo,'backup_presente')?></td><td></td></tr>
	<tr><td><?php new TagCheckbox($modulo,'backup_apposito')?></td><td></td></tr>
</table>
</div>
&nbsp;
<hr/>
<h1>5. Note</h1>
<div id="sez5">
<table>
	<tr><td><?php new TagTextarea($modulo,'note',80,10,'resize:none;width:400px')?></td><td></td></tr>
</table>
</div>
&nbsp;
<hr/>
<h1>6. Valutazione Hardware</h1>
<div id="sez6">
<table>
	<tr><td ><h2 ><input style="width:120px; text-align:right; font-size: 24px" type="text" readonly id="punteggio" name="punteggio" value="0"  /><img align="middle" id="semaforo" height="100" width="100" /></h2></td><td></td></tr>
</table>
</div>
&nbsp;

<?php 
	$clen=5;
	$captchagen = generate_captcha($clen);
	$hint = "Inserire il codice di $clen caratteri visualizzato nell'immagine "
?>	
<div id="catpcha" align="center" >
	<p>Risolvere il capcha per inviare il modulo</p>
	<img  src="./captcha.php?image=<?php echo $captchagen; ?>"  alt="<?php echo $hint; ?> " title="<?php echo $hint; ?>"/>
	<p><img class='errorImg' src='images/error.png' style='display:<?php echo (in_array('captcha',$modulo->getErrors()))?"inline":"none"?>;'/><input type="text" name="captcha" style="width: 120px;"/></p>
	<input type="hidden" name="key" value="<?php echo $captchagen; ?>" />
</div>
&nbsp;
<div align="center">
	<input name="sub" id="sub" type="button" onclick="checkForm();" value="Invia Scheda" class="button" />
	<input name="sub" id="sub" type="button" onclick="clearForm();" value="Cancella tutto" class="button" />
</div>
</fieldset>

<input type="hidden" id="score" name="score" value='<?php if(isset($_SESSION['score'])) echo $_SESSION['score'];  else echo "0"?>' />
<input type="hidden" id="valutazione" name="valutazione" value="" />
</form>
</div>
<?php include_once 'footer.php';?>
</body>
</html>